package rh;


import java.util.Date;

import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.ManyToOne;
import javax.persistence.OneToOne;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

import basicas.Empresa;
import seguranca.Usuario;
import cadastro.Pessoa;


@Entity
public class Funcionario extends Pessoa {
	
	
	@ManyToOne
	private Cargo cargo;
	
	@ManyToOne
	private Empresa empresa;
	
	private String matricula;
	
	@Temporal(TemporalType.DATE)
	private Date dataAdmissao;
	
	@Temporal(TemporalType.DATE)
	private Date dataDemissao;
	
	@ManyToOne
	private Setor setor;	
	
	@OneToOne
	private Usuario usuario;
	
	@Enumerated (EnumType.STRING)
	private Escolaridade escolaridade;
	
	public Funcionario(){
		super();
		
	}

	public Funcionario(Cargo cargo, String matricula, Date dataAdmissao,
			Date dataDemissao, Setor departamento, Usuario usuario,
			Escolaridade escolaridade, Empresa empresa) {
		super();
		this.cargo = cargo;
		this.matricula = matricula;
		this.dataAdmissao = dataAdmissao;
		this.dataDemissao = dataDemissao;
		this.setor = departamento;
		this.usuario = usuario;
		this.escolaridade = escolaridade;
		this.empresa = empresa;
	}
	

	// gets e sets

	public String getMatricula() {
		return matricula;
	}
	public void setMatricula(String matricula) {
		this.matricula = matricula;
	}
	public Date getDataAdmissao() {
		return dataAdmissao;
	}
	public void setDataAdmissao(Date dataAdmissao) {
		this.dataAdmissao = dataAdmissao;
	}
	public Date getDataDemissao() {
		return dataDemissao;
	}
	public void setDataDemissao(Date dataDemissao) {
		this.dataDemissao = dataDemissao;
	}
	public Setor getSetor() {
		return setor;
	}
	public void setSetor(Setor setor) {
		this.setor = setor;
	}
	public Usuario getUsuario() {
		return usuario;
	}
	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}
	public Escolaridade getEscolaridade() {
		return escolaridade;
	}
	public void setEscolaridade(Escolaridade escolaridade) {
		this.escolaridade = escolaridade;
	}

	public Cargo getCargo() {
		return cargo;
	}

	public void setCargo(Cargo cargo) {
		this.cargo = cargo;
	}

	public Empresa getEmpresa() {
		return empresa;
	}

	public void setEmpresa(Empresa empresa) {
		this.empresa = empresa;
	}
	
}
